<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Clean Code</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Clean_Code"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Clean_Code rootpage-Clean_Code skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Clean Code</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p><b>Clean Code</b> ist ein Begriff aus der <a href="Softwaretechnik" title="Softwaretechnik">Softwaretechnik</a>, der durch das gleichnamige Buch von <a href="Robert_Cecil_Martin" title="Robert Cecil Martin">Robert Cecil Martin</a> populär wurde.
Als „sauber“ <i>(clean)</i> bezeichnen <a href="Softwareentwickler" title="Softwareentwickler">Softwareentwickler</a> in erster Linie <a href="Quellcode" class="mw-redirect" title="Quellcode">Quellcode</a>, aber auch Dokumente, Konzepte, Regeln und Verfahren, die intuitiv verständlich programmiert bzw. konzipiert sind.
Vorteile von Clean Code sind stabilere und effizient wartbare Programme, was in einer kürzeren Entwicklungszeit bei Funktionserweiterungen und Fehlerbehebungen resultiert. Vor dem Gesichtspunkt, dass im Schnitt 70–80 % der Lebensdauer einer Software in den Wartungszeitraum fällt<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>, erhält die Einhaltung von <i>Clean Code</i>-Prinzipien zur Verbesserung der Leserlichkeit und Verständlichkeit besondere Relevanz.
</p><p>Schwierigkeiten beim Entwickeln von Clean Code liegen
</p>
<ol><li>häufig in zunächst unklaren oder sich widersprechenden Anforderungen,</li>
<li>zum Teil begründet im Fehlen von Erfahrung im Entwickeln von Clean Code,</li>
<li>im Mangel an Disziplin beim Programmieren und</li>
<li>im Aufwand nachträglicher Quellcode-Bereinigungen (dem sog. <a href="Refactoring" title="Refactoring">Refactoring</a>).</li></ol>
<p>Die Notwendigkeit, Code noch nach der Entwicklung von „unsauberen“ Stellen zu reinigen, wird häufig nicht gesehen oder vom Management nicht bewilligt, sobald das Programm seine vorgesehene Funktion ausübt. Ein direktes Schreiben von „sauberem“ Code ist nahezu unmöglich, kann jedoch durch den bewussten Umgang mit den Prinzipien und Praktiken von Clean Code verbessert werden.
</p><p>Eng verbunden mit dem Begriff <i>Clean Code</i> sind Maßnahmen, die bei der Entwicklung von Software zu „sauberem“ Programmcode führen. So zahlreich wie die Gründe für „unsauberen“ Code sind, so vielfältig sind auch die vorgeschlagenen Regeln in den aufgestellten Maßnahmenkatalogen. Dazu gehören:
</p>
<ul><li><a href="Quelltextformatierung" title="Quelltextformatierung">Quelltextformatierung</a> (englisch code conventions),</li>
<li><a href="Entwurfsmuster" title="Entwurfsmuster">Entwurfsmuster</a> (englisch design patterns),</li>
<li><a href="Konvention_vor_Konfiguration" title="Konvention vor Konfiguration">Konvention vor Konfiguration</a> (englisch convention over configuration),</li>
<li>eine umfangreiche Menge an Vorschlägen aus dem Buch <i>Clean Code</i> von Robert C. Martin.</li></ul>
<p>Darüber hinaus gibt es seit einigen Jahren eine Clean-Code-Developer-Bewegung, die das Ziel verfolgt, ein einheitliches und umfassendes Regelwerk auf eine didaktisch ansprechende Weise in das Bewusstsein der Entwickler zu rücken und damit die Disziplin zu fördern, die Clean-Code-Maßnahmen im Programmieralltag auch tatsächlich anzuwenden. Als Maßnahme, diese Vorgehensweise zu üben, werden <a href="Kata_(Programmierung)" title="Kata (Programmierung)">Katas</a> vorgesehen.
</p>
<div class="mw-heading mw-heading2"><h2 id="Siehe_auch">Siehe auch</h2></div>
<ul><li><a href="Software_Craftsmanship" title="Software Craftsmanship">Software Craftsmanship</a></li>
<li><a href="Principle_of_Least_Surprise" title="Principle of Least Surprise">Principle of Least Surprise</a></li>
<li><a href="Don%E2%80%99t_repeat_yourself" title="Don’t repeat yourself">Don’t repeat yourself</a></li>
<li><a href="YAGNI" title="YAGNI">YAGNI</a> (<i>You Ain’t Gonna Need It</i>)</li>
<li><a href="KISS-Prinzip" title="KISS-Prinzip">KISS-Prinzip</a></li>
<li><a href="Single-Responsibility-Prinzip" title="Single-Responsibility-Prinzip">Single-Responsibility-Prinzip</a></li>
<li><a href="Konvention_vor_Konfiguration" title="Konvention vor Konfiguration">Konvention vor Konfiguration</a></li>
<li><a href="Gesetz_von_Demeter" title="Gesetz von Demeter">Gesetz von Demeter</a> (<i>Law of Demeter</i>)</li>
<li><a href="Liskovsches_Substitutionsprinzip" title="Liskovsches Substitutionsprinzip">Liskovsches Substitutionsprinzip</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Literatur">Literatur</h2></div>
<ul><li><a href="Kent_Beck" title="Kent Beck">Kent Beck</a>: <cite style="font-style:italic">Clean code: Pipe dream or state of mind?</cite> In: <cite style="font-style:italic">Smalltalk Report</cite>. <span style="white-space:nowrap">Band<span style="display:inline-block;width:.2em"> </span>4</span>, <span style="white-space:nowrap">Nr.<span style="display:inline-block;width:.2em"> </span>8</span>, Juni 1995, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em"> </span>20–22</span> (<a rel="nofollow" class="external autonumber" href="http://archive.esug.org/HistoricalDocuments/TheSmalltalkReport/91_95/SMAL0408.PDF">[1]</a> [PDF; abgerufen am 2. Februar 2025]).<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rfr_id=info:sid/de.wikipedia.org:Clean+Code&rft.atitle=Clean+code%3A+Pipe+dream+or+state+of+mind%3F&rft.au=Kent+Beck&rft.date=1995-06&rft.genre=journal&rft.issue=8&rft.jtitle=Smalltalk+Report&rft.pages=20-22&rft.volume=4" style="display:none"> </span></li>
<li><a href="Robert_Cecil_Martin" title="Robert Cecil Martin">Robert C. Martin</a>: <cite style="font-style:italic">Clean Code: Refactoring, Patterns, Testen und Techniken für sauberen Code</cite>. mitp-Verlag, ISBN 978-0-13-235088-4.<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rfr_id=info:sid/de.wikipedia.org:Clean+Code&rft.au=Robert+C.+Martin&rft.btitle=Clean+Code%3A+Refactoring%2C+Patterns%2C+Testen+und+Techniken+f%C3%BCr+sauberen+Code&rft.genre=book&rft.isbn=9780132350884&rft.pub=mitp-Verlag" style="display:none"> </span></li>
<li>Andreas Wintersteiger: <cite style="font-style:italic">Clean Code</cite>. In: <cite style="font-style:italic">Der Entwickler</cite>. 12. Juni 2012 (<a rel="nofollow" class="external autonumber" href="https://entwickler.de/online/agile/clean-code-134128.html">[2]</a> [abgerufen am 16. März 2018]).<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rfr_id=info:sid/de.wikipedia.org:Clean+Code&rft.atitle=Clean+Code&rft.au=Andreas+Wintersteiger&rft.btitle=Der+Entwickler&rft.date=2012-06-12&rft.genre=book" style="display:none"> </span></li>
<li>Hendrik Lösch: <cite style="font-style:italic">Clean Code vs. Abhängigkeiten</cite>. In: <cite style="font-style:italic">Informatik Aktuell</cite>. 20. Juni 2017 (<a rel="nofollow" class="external autonumber" href="https://www.informatik-aktuell.de/entwicklung/methoden/clean-code-vs-abhaengigkeiten.html">[3]</a> [abgerufen am 16. März 2018]).<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rfr_id=info:sid/de.wikipedia.org:Clean+Code&rft.atitle=Clean+Code+vs.+Abh%C3%A4ngigkeiten&rft.au=Hendrik+L%C3%B6sch&rft.btitle=Informatik+Aktuell&rft.date=2017-06-20&rft.genre=book" style="display:none"> </span></li>
<li>Juliane Conte: <cite style="font-style:italic">Clean Code Developer aus Unternehmenssicht</cite>. In: <cite style="font-style:italic">Heise Developer</cite>. 5. Dezember 2011 (<a rel="nofollow" class="external autonumber" href="https://www.heise.de/developer/artikel/Clean-Code-Developer-aus-Unternehmenssicht-ein-Anwenderbericht-1389796.html?seite=all">[4]</a> [abgerufen am 16. März 2018]).<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rfr_id=info:sid/de.wikipedia.org:Clean+Code&rft.atitle=Clean+Code+Developer+aus+Unternehmenssicht&rft.au=Juliane+Conte&rft.btitle=Heise+Developer&rft.date=2011-12-05&rft.genre=book" style="display:none"> </span></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.clean-code-developer.de/">Homepage der Clean-Code-Developer-Initiative</a></li>
<li><a rel="nofollow" class="external text" href="https://cln.co">Homepage mit allen CleanCode Prinzipien</a></li>
<li><a rel="nofollow" class="external text" href="https://groups.google.com/group/clean-code-developer">Google Group: Clean Code Developer</a></li>
<li><span class="cite">Urs Enzler: <a rel="nofollow" class="external text" href="http://www.planetgeek.ch/wp-content/uploads/2014/11/Clean-Code-V2.4.pdf"><i>Clean Code Cheat Sheet.</i></a> (PDF)<span class="Abrufdatum"> Abgerufen am 21. Dezember 2016</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3AClean+Code&rft.title=Clean+Code+Cheat+Sheet&rft.description=Clean+Code+Cheat+Sheet&rft.identifier=http%3A%2F%2Fwww.planetgeek.ch%2Fwp-content%2Fuploads%2F2014%2F11%2FClean-Code-V2.4.pdf&rft.creator=Urs+Enzler"> </span></li>
<li><span class="cite">Steven C. McConnell: <a rel="nofollow" class="external text" href="http://www.matthewjmiller.net/files/cc2e_checklists.pdf"><i>Code Complete Checklists.</i></a> (PDF)<span class="Abrufdatum"> Abgerufen am 17. April 2013</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3AClean+Code&rft.title=Code+Complete+Checklists&rft.description=Code+Complete+Checklists&rft.identifier=http%3A%2F%2Fwww.matthewjmiller.net%2Ffiles%2Fcc2e_checklists.pdf&rft.creator=Steven+C.+McConnell"> </span></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Meir M. Lehman: <cite style="font-style:italic">Programs, Life Cycles, and Laws of Software Evolution</cite>. In: Institute of Electrical and Electronics Engineers (Hrsg.): <cite style="font-style:italic">PROCEEDINGS OF THE IEEE</cite>. Vol. 68, No. 9, September 1980, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em"> </span>1060</span>.<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rfr_id=info:sid/de.wikipedia.org:Clean+Code&rft.atitle=Programs%2C+Life+Cycles%2C+and+Laws+of+Software+Evolution&rft.au=Meir+M.+Lehman&rft.date=1980-09&rft.genre=journal&rft.issue=No.+9&rft.jtitle=PROCEEDINGS+OF+THE+IEEE&rft.pages=1060&rft.volume=Vol.+68" style="display:none"> </span></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text">D.J. Robson, K.H. Bennett et al.: <cite style="font-style:italic">Approaches to program comprehension</cite>. In: Elsevier (Hrsg.): <cite style="font-style:italic">Journal of Systems and Software</cite>. Volume 14, Issue 2, Februar 1991, <a href="Internationale_Standardnummer_f%C3%BCr_fortlaufende_Sammelwerke" title="Internationale Standardnummer für fortlaufende Sammelwerke">ISSN</a> <span style="white-space:nowrap"><a rel="nofollow" class="external text" href="https://zdb-katalog.de/list.xhtml?t=iss%3D%220164-1212%22&key=cql">0164-1212</a></span>, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em"> </span>79–84</span>.<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rfr_id=info:sid/de.wikipedia.org:Clean+Code&rft.atitle=Approaches+to+program+comprehension&rft.au=D.J.+Robson%2C+K.H.+Bennett+et+al.&rft.date=1991-02&rft.genre=journal&rft.issn=0164-1212&rft.issue=Issue+2&rft.jtitle=Journal+of+Systems+and+Software&rft.pages=79-84&rft.volume=Volume+14" style="display:none"> </span></span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-07-30" href="https://de.wikipedia.org/wiki/?title=Clean_Code&oldid=258442796">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>